#include<iostream>
#include"ex5.h"
using namespace std;
 ostream& operator<< (std::ostream& out,Fractie c)
{
out<<c.numarator<<"/"<<c.numitor;
return out;
}
istream& operator>>(istream& in,Fractie c)
{
in>>c.numarator>>c.numitor;
return in;
}

Fractie::Fractie(int numarator,int numitor)
{
     (*this).numitor=numitor;
     (*this).numarator=numarator;
}
Fractie::Fractie()
{
     (*this).numarator=0;
     (*this).numitor=0;
}
int Fractie::cmmdc(Fractie c)
{
     int a,b;
     a=c.getNumarator();
     b=c.getNumitor();
     while(a!=b)
     {
        if(a>b)
           a=a-b;
        else b=b-a;
     }
     return a;
}
Fractie Fractie::Simplifica(Fractie d)
{
     int x=cmmdc(d);
     d.numarator=d.getNumarator()/x;
     d.numitor=d.getNumitor()/x;
     return d;
}
int Fractie::getNumarator()
{
     int numarator;
     numarator=(*this).numarator;
     return numarator;
}
int Fractie::getNumitor()
{
     int numitor;
     numitor=(*this).numitor;
     return numitor;
}
void Fractie::setNumarator(int numarator)
{
     (*this).numarator=numarator;
}
void Fractie::setNumitor(int numitor)
{
     (*this).numitor=numitor;
}


bool Fractie::operator<=(Fractie b){
if(((*this).numarator%(*this).numitor)<=(b.numarator%b.numitor)&&((*this).numarator/(*this).numitor)<=(b.numarator/b.numitor))
return 1;
return 0;
}

bool SirFractii::sub(Fractie c){
if(c.getNumarator()<c.getNumitor())
  return 1;
return 0;
}

SirFractii::SirFractii(int n)
{
     int i;
     int numarator, numitor;
     cout<<"Introduceti numaratorul si numitorul:";
     for(i=0;i<n;i++)
     {
       cin>>numarator;
       cin>>numitor;
       sir[i]=Fractie(numarator,numitor);
     }
}
Fractie::Fractie& operator +(Fractie a, Fractie b)
{
     Fractie c;
     c.numarator=a.getNumarator()*b.getNumitor()+a.getNumitor()*b.getNumarator();
     c.numitor=a.getNumitor()*b.getNumitor();
     return c;
}



